v4.0
ProgID
のスクリプトによって指定されたActiveXオブジェクトを作成して戻します(例:"XSI.Collection")。このメソッドは、NetViewベースのHTMLページのコンテキスト内で使用すると便利です。"Scripting.FileSystemObject"オブジェクトのようなオートメーションオブジェクト(COm
オブジェクト)を作成する場合に
NetViewの警告ダイアログが表示されません。また、他のスクリプト言語(JScript、Python、PerlScriptなど)を使用してActiveXオブジェクトを作成するさまざまな方法を覚えるよりも、このメソッドを使う方が便利です。
各種スクリプト言語では、オートメーションオブジェクトを作成する機能がサポートされています(たとえばJScript の"new
ActiveXObject"など)。ただし、Netviewから呼び出すと、ネイティブメソッドでは警告メッセージが表示されてしまいます。これは、多くの
ActiveXオブジェクト("Scripting.FileSystemObject"や"Microsoft.XMLDOM"などのオブジェクト)がWebページに含まれると問題が生じる可能性があると判断されるためです。ただし、Softimage
でNetviewページを実行するうえでは、これらのセキュリティに関する警告は意味をなさないため、このメカニズムを用いて警告を省略することができます。
Softimage のオートメーションオブジェクト(Application、XSIFactory、XSIMathなど)はすべて安全と判断されるため、作成時にこのメソッドを使用する必要はありません。
oReturn = XSIFactory.CreateActiveXObject( ProgID ); |
新しく作成されたオブジェクト
| パラメータ | タイプ | 詳細 |
|---|---|---|
| ProgID | String | ProgIDとしてのオブジェクトの名前("servername.typename")。たとえば、"Scripting.FileSystemObject"や"Excel.Sheet"となります。 |
'
' This function is a useful tool within Netview Scripts that want to use
' Automation objects like "Scripting.FileSystemObject"
'
function SafeCreateObject( in_ProgID )
on error resume next
' First create our ActiveX (which is marked as safe)
set oXSIFactory = CreateObject( "XSI.Factory" )
' Use xsifactory to create the object
set oOBj = oXSIFactory.CreateActiveXObject( in_ProgID )
if err.number <> 0 then
' Problem might be that user is running an older version of Softimage, so
' try the old version (this method might pop a ActiveX warning dialog)
err.Clear
set oObj = CreateObject( in_ProgID )
end if
set SafeCreateObject = oObj
end function
' Example use
set oXML = SafeCreateObject( "Microsoft.XMLDOM" )
oXML.load "c:\info.xml"
|
function getFileSystemObject()
{
// Avoid the warning dialog that will appear NetView
// by getting Softimage to create the object for us
var oXSIFactory = new ActiveXObject( 'XSI.Factory' );
var fso = oXSIFactory.CreateActiveXObject( 'Scripting.FileSystemObject' );
return fso ;
}
|
import win32com.client my_xsifactory = win32com.client.Dispatch( "XSI.Factory" ) my_fso = my_xsifactory.CreateActiveXObject( "Scripting.FileSystemObject" ) Application.LogMessage( my_fso.FolderExists( 'C:\\temp' ) ) |